///////////////////////////////////////////////////////////
//  IGameLog.h
//  Implementation of the Interface IGameLog
//  Created on:      11-Jan-2015 4:13:27 PM
//  Original author: Eng. Ahmed Yasser
///////////////////////////////////////////////////////////

#if !defined(EA_A1087581_6710_475e_B21A_D2E0BFF88C20__INCLUDED_)
#define EA_A1087581_6710_475e_B21A_D2E0BFF88C20__INCLUDED_

#include <string>

namespace EngineGame
{
	namespace EngineProfile
	{
		/**
		 * Descripe the basic definition of any game logger exist in the game
		 * @author Eng. Ahmed Yasser
		 * @version 1.0
		 * @updated 12-Jan-2015 12:01:55 PM
		 */
		class IGameLog
		{

		public:
			/**
			 * Close the logger and release any attached resources to it
			 */
			virtual void closeLogger() =0;
			/**
			 * Initialize the logger system with any additional resources needed
			 */
			virtual void initLogger() =0;
			/**
			 * Log any string data in the logger
			 * 
			 * @param logString    The log string that will be logged in the system
			 */
			virtual void log(std::string logString) =0;

		};

	}

}
#endif // !defined(EA_A1087581_6710_475e_B21A_D2E0BFF88C20__INCLUDED_)
